Method and apparatus for forward error correction (fec) in a resource-constrained network

ABSTRACT

An electronic device may utilize or support adaptive use of forward error correction (FEC) in a resource-constrained network. The adaptive FEC use may comprise determining whether use of FEC encoding in transmissions from another electronic device to the electronic device is necessary, desirable, and/or feasible, and when use of FEC encoding is deemed feasible and either necessary or desirable, instructing the another electronic device to utilize FEC encoding when transmitting signals destined for the electronic device. Use of FEC encoding may be determined to be feasible, necessary and/or desirable based on power loss associated with the communications from the another electronic device; based on determination of latency associated with the communications from the another electronic device; and/or based on power and/or processing related resources in the electronic device. The electronic device may separately and selectively apply FEC encoding to transmissions to the another electronic device.

CLAIM OF PRIORITY

This patent application makes reference to, claims priority to andclaims benefit from U.S. Provisional Application Ser. No. 61/464,376which was filed on Mar. 2, 2011.

The above-referenced application is hereby incorporated herein byreference in its entirety.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

This patent application also makes reference to:

U.S. Provisional Patent Application Ser. No. 61/464,376 titled “AdvancedCommunication System for Wide-Area Low Power Wireless Applications andActive RFID” and filed on Mar. 2, 2011;U.S. Provisional Patent Application Ser. No. 61/572,390 titled “Systemfor Adding Dash7-Based Applications Capability to a Smartphone” andfiled on Jul. 15, 2011;U.S. patent application Ser. No. 13/267,640 titled “Method and Apparatusfor Adaptive Searching of Distributed Datasets” and filed on Oct. 6,2011;U.S. patent application Ser. No. 13/267,621 titled “Method and Apparatusfor Low-Power, Long-Range Networking” and filed on Oct. 6, 2011;U.S. patent application Ser. No. 13/270,802 titled “Method and Apparatusfor a Multi-band, Multi-mode Smartcard” and filed on Oct. 11, 2011;U.S. patent application Ser. No. 13/270,959 titled “Method and Apparatusfor an Integrated Antenna” and filed on Oct. 11, 2011;U.S. patent application Ser. No. 13/289,054 titled “Method and Apparatusfor Electronic Payment” and filed on Nov. 4, 2011;U.S. patent application Ser. No. 13/289,050 filed on Nov. 4, 2011;U.S. patent application Ser. No. 13/297,348 titled “Method and Apparatusfor Interfacing with a Smartcard” and filed on Nov. 16, 2011;U.S. patent application Ser. No. 13/354,513 titled “Method and Apparatusfor Memory Management” and filed on Jan. 20, 2012;U.S. patent application Ser. No. 13/354,615 titled “Method and Apparatusfor Discovering, People, Products, and/or Services via a LocalizedWireless Network” and filed on Jan. 20, 2012;U.S. patent application Ser. No. 13/396,708 titled “Method and apparatusfor Plug and Play, Networkable ISO 18000-7 Connectivity” and filed onFeb. 15, 2012;U.S. patent application Ser. No. 13/396,739 titled “Method and Apparatusfor Serving Advertisements in a Low-Power Wireless Network” and filed onFeb. 15, 2012;U.S. patent application Ser. No. ______ (Attorney Docket No. 24666US02)titled “Method and Apparatus for Adaptive Traffic Management in aResource-Constrained Network” and filed on Feb. 29, 2012;U.S. patent application Ser. No. ______ (Attorney Docket No. 24667US02)titled “Method and Apparatus for Dynamic Media Access Control in aMultiple Access System” and filed on Feb. 29, 2012;U.S. patent application Ser. No. ______ (Attorney Docket No. 24668US02)titled “Method and Apparatus for Rapid Group Synchronization” and filedon Feb. 29, 2012;

U.S. patent application Ser. No. ______ (Attorney Docket No. 24669US02)titled “Method and Apparatus for Addressing in a Resource-ConstrainedNetwork” and filed on Feb. 29, 2012;

U.S. patent application Ser. No. ______ (Attorney Docket No. 24670US02)titled “Method and Apparatus for Query-Based Congestion Control” andfiled on Feb. 29, 2012; andU.S. patent application Ser. No. ______ (Attorney Docket No. 24671US02)titled “Method and Apparatus for Power Autoscaling in aResource-Constrained Network” and filed on Feb. 29, 2012.

Each of the above stated applications is hereby incorporated herein byreference in its entirety.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[Not Applicable].

MICROFICHE/COPYRIGHT REFERENCE

[Not Applicable].

FIELD OF THE INVENTION

Certain embodiments of the invention relate to communications. Morespecifically, certain embodiments of the invention relate to a methodand an apparatus for forward error correction (FEC) in aresource-constrained network.

BACKGROUND OF THE INVENTION

Existing methods for providing error correction may be unsuitable inresource-constrained networks. Further limitations and disadvantages ofconventional and traditional approaches will become apparent to one ofskill in the art, through comparison of such systems with some aspectsof the present invention as set forth in the remainder of the presentapplication with reference to the drawings.

BRIEF SUMMARY OF THE INVENTION

A system and/or method is provided for forward error correction (FEC) ina resource-constrained network, substantially as shown in and/ordescribed in connection with at least one of the figures, as set forthmore completely in the claims.

These and other advantages, aspects and novel features of the presentinvention, as well as details of an illustrated embodiment thereof, willbe more fully understood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1A is a block diagram illustrating an exemplary communication setupcomprising a plurality of spatially-distributed, resource-constraineddevices, which may be utilized in accordance with an embodiment of theinvention.

FIG. 1B is a block diagram illustrating exemplary electronic devicesutilizing asymmetric and adaptive forward error correction (FEC)communication, in accordance with an embodiment of the invention.

FIG. 2A is a block diagram illustrating an exemplary electronic devicethat may support optimized packet filtering, in accordance with anembodiment of the invention.

FIG. 2B is a block diagram illustrating exemplary symbol encoding anddecoding modules that enable optional use of forward error correction(FEC) encoding/decoding, in accordance with an embodiment of theinvention.

FIG. 3A is a block diagram illustrating exemplary structure of aphysical layer (PHY) packet carrying a data link layer frame, which maybe utilized in accordance with an embodiment of the invention.

FIG. 3B is a block diagram illustrating exemplary structure of a datalink layer frame utilized by a requester device in aresource-constrained network to specify particular channels fortransmitting responses from responder devices, in accordance with anembodiment of the invention.

FIG. 4 is a flow chart that illustrates exemplary steps for performingadaptive configuration and/or use of forward error correction (FEC), inaccordance with an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Certain embodiments of the invention may be found in a method andapparatus for forward error correction (FEC) in a resource-constrainednetwork. In various embodiments of the invention, an electronic devicemay implement and/or support adaptive use of forward error correction(FEC) in a resource-constrained network. In this regard, the adaptiveuse of FEC may comprise determining whether use of FEC encoding intransmissions from another electronic device to the electronic device isnecessary, desirable, and/or feasible; and when use of FEC encoding isdeemed feasible and either necessary or desirable, the electronic deviceinstructing the another electronic device to utilize FEC encoding whentransmitting signals destined for the electronic device. Use of FECencoding may be determined to be feasible and either necessary ordesirable based on power loss associated with the communications fromthe another electronic device. In this regard, determining or estimatingthe power loss may be based on measurement of received signal strengthindication (RSSI) for packets received from the another electronicdevice and based on original transmit power for packets received fromthe another electronic device, wherein the original transmit power maybe obtained from information embedded in the received packets. Once thepower loss is determined, use of FEC encoding may be determined to notbe necessary and is not desirable when the power loss is below a minimumthreshold. The electronic device may also instruct the anotherelectronic device to cease transmission to the electronic device whenthe power loss exceeds a maximum threshold. Use of FEC encoding may bedetermined to be necessary or desirable based on determination oflatency associated with the communications from the another electronicdevice to the electronic device is necessary and/or feasible. Use of FECencoding may be determined to be feasible based on one or moreparameters that are pertinent to FEC decoding handling in the electronicdevice. The one or more parameters may pertain to, for example, power,storage and/or processing related resources in the electronic device.The electronic device may instruct the another electronic device toutilize FEC encoding by specifying one or more FEC-capable channels foruse by the another electronic device when transmitting the signalsdestined for the electronic device. In some instances, the electronicdevice may selectively apply FEC encoding to transmissions to theanother electronic device. In this regard, selective use of FEC encodingfor transmissions from the electronic device to the another electronicdevice may be based on, at least in part, a determination of whether FECdecoding is feasible in the another electronic device.

As utilized herein, “and/or” means any one or more of the items in thelist joined by “and/or”. As an example, “x and/or y” means any elementof the three-element set {(x), (y), (x, y)}. As another example, “x, y,and/or z” means any element of the seven-element set {(x), (y), (z), (x,y), (x, z), (y, z), (x, y, z)}.

FIG. 1A is a block diagram illustrating an exemplary communication setupcomprising a plurality of spatially-distributed, resource-constraineddevices, which may be utilized in accordance with an embodiment of theinvention. Referring to FIG. 1A there is shown a first device 102,second devices 104 ₁-104 ₁₆, and perimeters 106 ₁-106 ₃.

The first device 102 may comprise suitable logic, circuitry, interfaces,and/or code operable to transmit and receive wireless signals inaccordance with one or more wireless protocols. Exemplary protocolswhich may be supported by the device 102 may include the ISO 18000-7protocol, and protocols described in the above-incorporated U.S.Provisional Patent Application Ser. No. 61/464,376 and filed on March 2,2011. The first device 102 may be a less resource-constrained device. Inthis regard, the first device 102 may be, for example and withoutlimitation, a laptop computer, a desktop computer, a tablet computer, asmart phone, a server, a set-top box, a gateway, a base station, a meteror code reader, or may comprise a combination of one or more suchdevices.

Each of the second devices 104 ₁-104 ₁₆ may comprise suitable logic,circuitry, interfaces, and/or code operable to transmit and receivewireless signals in accordance with one or more wireless protocols,which may include the ISO 18000-7 standard, and protocols described inthe above-incorporated U.S. Provisional Patent Application Ser. No.61/464,376 and filed on Mar. 2, 2011. Each of the second devices 104₁-104 ₁₆ may be operable to store data (e.g., in the form of delimitedstrings of characters). At least some of the second devices 104 ₁-104 ₁₆may be more resource-constrained devices. In this regard, one or more ofthe second devices 104 ₁-104 ₁₆ may have relatively little memory,relatively little processing energy, operate on battery energy, and/ormay otherwise be constrained in terms of one or more resources. Thesecond devices 104 ₁-104 ₁₆ may comprise, for example, RFID tags,smartcards, keyfobs, cellphones, portable media players, appliances,and/or utility meters.

The second devices 104 ₁-104 ₁₆ may be located at different distancesrelative to the first device 102. Accordingly, the perimeters 106 ₁-106₃ may represent and/or delineate different zones of operations for thefirst device 102. Operating at each of the perimeters 106 ₁-106 ₃ maycorrespond to, for example, utilization of a different transmit power bydevice 102. That is, the device 102 may utilize a first transmit powerT₁ to communicate with devices within the first perimeter 106 ₁, utilizea second transmit power T₂ to communicate with devices within the secondperimeter 106 ₂, and utilize a third transmit power T₃ to communicatewith devices within the third perimeter 106 ₃, wherein T₃>T₂>T₁.

In operation, the device 102 may communicate one or more of the devices104 ₁-104 ₁₆. In this regard, communications among the devices 102 and104 ₁-104 ₁₆ may be based on the ISO 18000-7 protocol, and/or similarprotocols such as the protocols described in the above-incorporated U.S.Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2,2011. Use of such protocols may be used for low-power, long rangecommunication, such as to enable RFID and like exchanges among thedevices 102 and 104 ₁-104 ₁₆. For example, at the 433 MHz band, lowpower communication based on such protocols may be in the range of1-2000 m.

In an exemplary aspect of invention, electronic devices, such as devices102 and 104 ₁-104 ₁₆, may be operable to implement and/or support use offorward error correction (FEC) during communications therebetween. Inthis regard, forward error correction (FEC) may be utilized fordetecting, controlling and correcting errors during data transmissions,especially when the data transmissions are over unreliable or noisycommunication channels. In various embodiments of the invention, use ofFEC in communications among devices in a resource-constrained network,such as devices 102 and 104 ₁-104 ₁₆ for example, may be performed in anadaptive and/or intelligent manner, to enable selective and/orconfigurable use of FEC such that power consumption and/or resourceutilization may be optimized. In this regard, various aspects ofadaptive FEC implementation(s) described herein may allow for reducingpower consumption and/or resource utilization associated with use ofFEC-based communication by utilizing FEC selectively and/orindependently, in each direction (i.e., in each direction ofcommunication between two devices) and/or by each device (i.e., devicesdetermining when and/or how to use FEC).

FIG. 1B is a block diagram illustrating exemplary electronic devicesutilizing asymmetric and adaptive forward error correction (FEC)communication, in accordance with an embodiment of the invention.Referring to FIG. 1B, there is shown a requesting device and aresponding device engaged in communication in which forward errorcorrection (FEC) may be used adaptively and/or asymmetrically. Therequesting device and the responding device may correspond to devices102 and 104 ₂, respectively, of FIG. 1A, for example.

In operation, devices in a resource-constrained network, such as devices102 and 104 ₂ for example, may be operable to utilize forward errorcorrection (FEC) during communications therebetween. In this regard,forward error correction (FEC) may be utilized in encoding messagescommunicated between the devices in a manner that enables detecting andcorrecting errors occurring during data transmission over unreliable ornoisy communication channels. In particular, FEC encoding utilizesredundancy of data to enable the receiving device to detect a particularnumber of errors which may occur anywhere in the message, and to correctthese errors without requiring retransmission by the sending device.

In various embodiments of the invention, devices in aresource-constrained network, such as devices 102 and 104 ₂ for example,may implement and/or support use of forward error correction (FEC)adaptively and/or intelligently. The adaptive and/or intelligent useand/or configuration of FEC during communications among devices 102 and104 ₂ may enable optimizing power consumption and/or resourceutilization in the devices and/or the network, and/or may be tailored tothe conditions of the network or devices, and changes thereof. In thisregard, various aspects of FEC used in communications by devices 102and/or 104 ₂ may be adaptively and/or selectively configured or adjustedbased on power and/or resource requirement and/or availability. In oneaspect, for example, FEC may be implemented in an asymmetricalmanner—that is during communications between two devices, FEC may beapplied in one direction (e.g., in communication 150 _(A) from device104 ₂ to device 102) but not in the opposite direction (e.g., incommunication 150 ₁₃ from device 102 to device 104 ₂). In this regard,determining when and/or how to implement such asymmetry in use of FECmay be based on a determination of availability of power and/orresources in the devices, and may take advantage of differences in thenature of FEC encoding and decoding—that is, for example, the fact thatFEC encoding may generally require little power and/or resources,whereas FEC decoding may generally be power and/or resource intensive.For example, because device 102, being a less-constrained device(generally having more power and/or resources than devices 104 ₁-104 ₁₆,which may be more-constrained devices), FEC may be applied incommunications from device(s) 104 _(x) to device 102, but not applied incommunication from device 102 to device(s) 104 _(x). That is, onlyless-resource-intensive encoding operations may be performed in moreresource-constrained device(s) 104 _(x) while more-resource-intensivedecoding operations are performed in less resource-constrained device102.

Another aspect of the FEC scheme used in accordance with aspects of thepresent invention is the intelligent managing and/or configuring of FECoperations. In this regard, devices 102 and 104 ₂ may selectively and/orvariably determine when to use (or not use) FEC during communicationsamong these devices. Furthermore, the determination of when and/or howto apply or use FEC may be done separately in each of the requesting andresponding devices. In this regard, at the requester-side, therequesting device may consider many factors when deciding when to useFEC, and/or on what channel to request a response. The selection of thechannel may be relevant in instances where available channels maycomprise both FEC channels (i.e. channels allowing for and/orincorporating use of FEC) and non-FEC channels. The requesting devicemay determine whether FEC is desirable or necessary based on, forexample, a determination of loss of power (or power dissipation)occurring during communication between the devices. In this regard,determination of loss of power may be based on local power measurementof received signals (e.g., received signal strength indication, or RSSI)and a determination of original transmit power of received signals. Therequesting device may also base the decision on its own powerconsumption and available resources. In this regard, when the requestingdevice determines that it has sufficient power and/or availableresources (e.g., memory and/or processor time) for FEC decoding, therequesting device may instruct a (responding) device to respond on anFEC channel; but if the requesting device determines that it does nothave sufficient power or available resources to perform FEC decoding,the requesting device may instruct that responses be on a non-FECchannel. The requesting device can instruct responses on FEC channels ornot, based on, for example, latency requirements of the packets to becommunicated. The requesting device can also decide whether or not FECis used based on the type of device with which the requesting devicewants to communicate (e.g., whether the requesting device wantsresponses from base stations, controllers, endpoints, and/or blinkers).

At the responder side, a responding device may consider many factorspertinent to that device in determining whether or not to use FEC for aparticular transmission. For example, a responding device may determinewhether to use FEC for a particular transmission based, at least inpart, on the channel on which the endpoint has been instructed torespond—e.g., whether the channel is a FEC channel or a non-FEC channel.The determination of whether (or not) to use FEC may also be based onloss-of-power measurements associated with signals received from therequesting devices—such as, for example, by subtracting local powermeasurement of received signals from original transmit power for thesesignals. For example, when power measurements indicate littledissipation during communication from the requesting device to theresponding device, the responding device may forgo use of FEC intransmissions to the requesting device; when power measurements indicatemedium dissipation, the responding device may use FEC in transmissionsto the requesting device; and when power measurements indicate highdissipation, the responding device may choose to not respond.

In an embodiment of the invention, prior to applying FEC tocommunications between two devices, one of the devices (e.g., therequesting device) may send to the other device (e.g. the respondingdevice) one or more messages to query and/or interrogate the anotherdevice before determining when and/or how to apply FEC to anycommunications to that device. In this regard, such interrogation maypertain to the other device's characteristics and/or capabilities (e.g.to determine if the other device can handle FEC decoding for example).For example, the device 102 may interrogate the device 104 ₂, such as todetermine its type and/or its processing or storage capabilities, andmay not apply FEC encoding in transmissions to the device 104 ₂ incertain conditions as determined by such interrogative interactions(e.g., when device 104 ₂ is determined to be a simple RFID tag, whichtypically lacks the sufficient processing and/or storage capabilitiesrequired for performing FEC decoding). Furthermore, such interrogativeinteractions may also allow one or both of the devices to estimate thedistance therebetween, such as by calculation of power dissipationoccurring during communication therebetween, and/or to estimate latencyencountered on the link therebetween.

FIG. 2A is a block diagram illustrating an exemplary electronic devicethat may support optimized packet filtering, in accordance with anembodiment of the invention. Referring to FIG. 2A there is shown anelectronic device 200.

The electronic device 200 may be similar to the electronic devices 102and/or 104 _(x) of FIG. 1A, and may comprise suitable logic, circuitry,interfaces, and/or code that may be operable to implement variousaspects of the invention. The electronic device 200 may comprise, forexample, a host processor 202, a system memory 204, a signal processingmodule 206, a transmit front-end (FE) 210, a transmission antenna 220, aplurality of receive front-end (FE) 212 _(A)-212 _(N), and plurality ofreception antennas 222 _(A)-222 _(N).

The host processor 202 may comprise suitable logic, circuitry,interfaces, and/or code that may be operable to process data, and/orcontrol and/or manage operations of the electronic device 200, and/ortasks and/or applications performed therein. In this regard, the hostprocessor 202 may be operable to configure and/or control operations ofvarious components and/or subsystems of the electronic device 200, byutilizing, for example, one or more control signals. The host processor202 may enable execution of applications, programs and/or code, whichmay be stored in the system memory 204, for example.

The system memory 204 may comprise suitable logic, circuitry,interfaces, and/or code that may enable permanent and/or non-permanentstorage, buffering, and/or fetching of data, code and/or otherinformation, which may be used, consumed, and/or processed in theelectronic device 200. In this regard, the system memory 204 maycomprise different memory technologies, including, for example,read-only memory (ROM), random access memory (RAM), Flash memory,solid-state drive (SSD), and/or field-programmable gate array (FPGA).The system memory 204 may store, for example, configuration data, whichmay comprise parameters and/or code, comprising software and/orfirmware.

The signal processing module 206 may comprise suitable logic, circuitry,interfaces, and/or code for enabling processing of signals transmittedand/or received by the electronic device 200. The signal processingmodule 206 may be operable to perform such signal processing operationas filtering, amplification, up-convert/down-convert baseband signals,analog-to-digital conversion and/or digital-to-analog conversion,encoding/decoding, encryption/decryption, and/ormodulation/demodulation. The signal processing module 206 may beoperable and/or configured to support low-power wireless protocol, suchas ISO 18000-7, protocols described in above-incorporated U.S.Provisional Patent Application No. 61/464,376, and/or similar relatedprotocols.

The transmit FE 210 may comprise suitable logic, circuitry, interfaces,and/or code that may be operable to perform wireless transmission, suchas over a plurality of supported RF bands. The transmit FE 210 mayenable, for example, performing wireless communications of RF signalsvia the transmission antenna 220. In this regard, the transmissionantenna 220 may comprise suitable logic, circuitry, interfaces, and/orcode that may enable transmission of wireless signals within certainbandwidths and/or based on certain protocols. For example, one or moreof the transmission antenna 220 may enable transmission over the 433 MHzband, which may be suitable for ISM communication based on, for example,ISO 18000-7, protocols described in above-incorporated U.S. ProvisionalPatent Application No. 61/464,376, and/or similar related protocols.

Each of the plurality of receive FEs 212 _(A)-212 _(N) may comprisesuitable logic, circuitry, interfaces, and/or code that may be operableto perform wireless reception, such as over a plurality of supported RFbands. Each of the plurality of receive FEs 212 _(A)-212 _(N) mayenable, for example, performing wireless communications of RF signalsvia corresponding one of the plurality of reception antennas 222_(A)-222 _(N). Each of the plurality of reception antennas 222 _(A)-222_(N) may comprise suitable logic, circuitry, interfaces, and/or codethat may enable reception of wireless signals within certain bandwidthsand/or based on certain protocols. For example, one or more of theplurality of reception antennas 222 _(A)-222 _(N) may enable receptionof signals communicated over different channels within the 433 MHz band,which may be suitable for ISM communication based on, for example, ISO18000-7, protocols described in above-incorporated U.S. ProvisionalPatent Application No. 61/464,376, and/or similar related protocols.

In various embodiments of the invention, the electronic device 200 maybe operable to support and/or implement adaptive and/or selective use offorward error correction. In this regard, the electronic device may beconfigured to selectively use FEC encoding during signal transmissionsoperations and/or to selectively handle FEC decoding during signalreception operations. A particular, non-limiting embodiment forproviding and/or supporting adaptive and/or selective FEC encodingand/or decoding is described in more detail with reference to FIG. 2B,below.

FIG. 2B is a block diagram illustrating exemplary symbol encoding anddecoding modules that enable optional use of forward error correction(FEC) encoding/decoding, in accordance with an embodiment of theinvention. Referring to FIG. 2B, there is shown symbol encoding module250 and symbol decoding module 270.

The symbol encoding module 250 and/or the symbol decoding module 270 maybe integrated into an electronic device, such as electronic device 200,to enable performing data encoding and/or decoding during communicationsto and/or from the electronic device. In this regard, the symbolencoding module 250 and/or the symbol decoding module 270 may beimplemented as separate, stand alone physical components. Alternatively,the symbol encoding module 250 and/or the symbol decoding module 270 maycomprise logical components, with functions and/or operations thereofbeing performed by existing components of the electronic device 200,such as signal processing module 206, the transmit FE 210, and/or one ormore of the receive FEs 212 _(A)-212 _(N).

The symbol encoding module 250 may comprise suitable logic, circuitry,interfaces, and/or code to encode data communicated via signalstransmitted by an electronic device (e.g., electronic device 200). Inthis regard, messages transmitted or received over channels implementedin accordance with aspects of the present invention may comprise binarysymbols corresponding to data carried thereby. The symbols may beencoded based on one or more methods supported by the electronic device200, which may be specific to particular protocol(s), such as, forexample, encoding methods specified for the ISO 18000-7 protocol, and/orsimilar protocols such as the protocols described in theabove-incorporated U.S. Provisional Patent Application Ser. No.61/464,376 and filed on Mar. 2, 2011. For example, the symbol encodingmodule 250 may be operable to support and/or apply two differentencoding methods, the first being pseudo-random number 9-bit (PN9)encoding, and the second being forward error correction (FEC) encoding.In an embodiment of the invention, the symbol encoding module 250 may beoperable to apply PN9 encoding as a mandatory first encoding stage, andto optionally apply FEC encoding as a second encoding stage. The symbolencoding module 250 may comprise, for example, a PN9 encoder 252, ademultiplexer (DEMUX) 254, and a FEC encoder 256.

The PN9 encoder 252 may comprise suitable logic, circuitry, interfaces,and/or code to perform PN9 encoding. In this regard, PN9 encoding is a“data whitening” encoding scheme, in which input data may be encoded toresemble white noise. The PN9 encoding is a full-rate, statisticallyDC-free encoding that offers no encoding gain. PN9 encoding (andsimilarly PN9 decoding) may comprise use of a Linear Feedback ShiftRegister (LFSR) and a seed polynomial to produce a predictable sequenceof pseudo-random values, which may be XOR'ed with the datastream (e.g.,the input data) to generate corresponding encoded data. The seedpolynomial may be initialized to the value: x⁸+x⁷+x⁶+x⁵+x⁴+x³+x²+x¹+x⁰.

The DEMUX 254 may comprise suitable logic, circuitry, interfaces and/orcode operable to select an output corresponding to a particular inputfrom a plurality of outputs—that is to route an input to one of aplurality of possible outputs—based on one or more control signals.

The FEC encoder 256 may comprise suitable logic, circuitry, interfaces,and/or code to perform FEC encoding. The FEC encoder 256 may implementFEC encoding via a first step 256 _(A), which applies a computation(e.g., non-recursive) of convolutional code. The convolutional code maybe, for example, a ½ rate convolutional code, using a specific algorithmof a particular constraint length (e.g., 4). The first, convolutionalcomputation step 256 _(A) may be followed by a second, interleaver step256B, which may apply interleaving computation, for example, a 4×4matrix interleaver. U.S. Provisional Patent Application No. 61/464,376provides more details on an exemplary FEC encoding using convolutionalcomputation and interleaving. Use of FEC encoding may enable improvingbit error rates in particular situations, such as in mid-to-lowsignal-to-noise ratio (SNR) environments, and less-so to improvedecodability near the SNR limit (i.e., near the limit of communicationsrange).

The symbol decoding module 270 may comprise suitable logic, circuitry,interfaces, and/or code to decode data obtained from signals received byan electronic device (e.g., electronic device 200). In this regard, thesymbol decoding module 270 may be operable to decode encoded binarysymbols corresponding to data carried in the received signals. In anexemplary aspect of the invention, the symbol may be encoded using PN9encoding, and optionally, using FEC encoding as a second level encodingto already PN9 encoded data. The symbol decoding module 270 maycomprise, for example, a demultiplexer (DEMUX) 272, a FEC decoder 274,and a PN9 decoder 276.

The DEMUX 272 may comprise suitable logic, circuitry, interfaces and/orcode operable to select an output corresponding to a particular inputfrom a plurality of outputs—that is to route an input to one of aplurality of possible outputs—based on one or more control signals.

The FEC decoder 274 may comprise suitable logic, circuitry, interfaces,and/or code to perform FEC decoding. The FEC decoder 274 may implementFEC decoding via a first de-interleaving step 274 _(A), which may applyinterleaving computation, followed by a second, convolutionalcomputation step 274 _(B). In other words, the operations of the FECdecoder 274 minors and/or reverse the operation of the FEC encoder 256.U.S. Provisional Patent Application No. 61/464,376 provides more detailson an exemplary FEC encoding using convolutional computation andinterleaving. The operations of the FEC decoder 274 may be more powerand/or resource intensive than that of the FEC encoder 256, however.This may be because the computations of FEC encoder 256 may, forexample, simply entail use of lookup tables whereas FEC decoder 274 mayrequire use of actual, and complex mathematical calculations.

The PN9 decoder 276 may comprise suitable logic, circuitry, interfaces,and/or code to perform PN9 decoding. In this regard, PN9 decoding mayenable extracting original data from corresponding PN9 encoded data. ThePN9 decoder 274 may utilize a Linear Feedback Shift Register (LFSR) anda seed polynomial—e.g., the same polynomial used in PN9 encoding, togenerate a sequence of pseudo-random values, which may be XOR'ed withthe PN9 encoded data to enable generating the corresponding, originalnon-encoded data.

In operation, the symbol encoding module 250 may encode datacommunicated via signals transmitted by electronic device 200. In thisregard, the symbol encoding module 250 may enable generating encodedsymbols that are included in messages transmitted by the electronicdevice 200. The symbols may be encoded based on one or more methodssupported by the electronic device 200. For example, the symbol encodingmodule 250 may encode data using encoding methods specific to particularsupported protocol(s), such as the ISO 18000-7 protocol, and/or similarprotocols such as the protocols described in the above-incorporated U.S.Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2,2011. In this regard, the symbol encoding module 250 applies PN9encoding to input data, via PN9 encoder 252. The PN9 encoding may bemandatory, and may be applied to all data being written into messagestransmitted by the electronic device 200. In an embodiment of theinvention, the symbol encoding module 250 may also optionally apply FECencoding as a second encoding stage to already PN9 encoded data. Forexample, the DEMUX 254 may be utilized to selectively apply or bypassFEC encoding after completion of PN9 encoding via the PN9 encoder 252.The selection performed via the DEMUX 254 may be controlled using acontrol signal: ENC_Select. In this regard, when the ENC_Select signalis asserted, the DEMUX 254 may route the input, corresponding to PN9encoded data, to the FEC encoder 256, to apply FEC encoding thereto as asecond stage encoding, thus the encoded output would be both PN9 and FECencoded. On the other hand, when the ENC_Select signal is deasserted,the DEMUX 254 may route the input, corresponding to PN9 encoded data,directly to the output of the symbol encoding module 250, thus bypassingthe FEC encoder 256, and resulting in the encoded output being only bothPN9 encoded.

The symbol decoding module 270 may decode data carried in signalsreceived by the electronic device 200. In this regard, the symboldecoding module 270 may enable decoding encoded symbols that are carriedin messages received by the electronic device 200. The symbols may beencoded in accordance with methods supported by the electronic device200. For example, the symbol decoding module 270 may support PN9decoding and FEC decoding. In this regard, the symbol decoding module270 may apply PN9 decoding, via the PN9 decoder 276, to all receiveddata, and may optionally apply FEC decoding, via the FEC decoder 274, asa first decoding stage in some conditions. For example, the DEMUX 272may be utilized to selectively apply or bypass FEC decoding, via FECdecoder 274, prior to applying PN9 decoding via the PN9 decoder 276. Theselection performed via the DEMUX 272 may be controlled using a controlsignal: DEC_Select. In this regard, when the DEC_Select signal isasserted, the DEMUX 272 may route the encoded input, obtained fromreceived signals, to the FEC decoder 274, to apply FEC decoding theretoas a first decoding stage, to obtain PN9 (only) encoded data, which maythen be PN9 decoded via the PN9 decoder 276. On the other hand, when theENC_Select signal is deasserted, the DEMUX 272 may route the encodedinput, corresponding to PN9 (only) decoded data, directly to the PN9decoder 276, thus bypassing the FEC decoder 274.

The optional FEC encoding and/or decoding, performed via the symbolencoding module 250 and the symbol decoding module 270, respectively,may be performed in accordance with adaptive and/or intelligent FEC usepolicies applied by the electronic device 200. In this regard,determining when to apply FEC encoding (by asserting ENC_Select signal)or to apply FEC decoding (by asserting DEC_Select signal) may be basedon various factors, such as, for example, power consumption and/orrequirement, resource use and/or availability, and/or communicationconditions (e.g., power loss, latency, reliability, etc.). For example,FEC decoding may be turned off by deasserting the DEC_Select signals.This may further require instructing peer device(s) to not apply FECencoding to messages (or signals) being sent to the electronic device.Also, use of FEC encoding and decoding may be asymmetric—i.e., theelectronic device 200 may apply FEC encoding to transmitted messageswhile, during the same time period, not applying FEC decoding toreceived messages. Furthermore, the electronic device 200 maydynamically switch on/off FEC decoding or encoding. Determination as towhen to use FEC encoding and/or decoding, and/or any changes thereto,may necessitate interactions with peer device(s) to coordinate anychanges to use of FEC in either direction—i.e., from and/or to theelectronic device 200.

In an embodiment of the invention, various FEC management profiles maybe utilized to control and/or configure use of FEC during communicationsin an electronic device. In this regard, FEC management profiles mayspecify different information for controlling and/or determining whenFEC use may be enabled and/or disabled, and whether to do so separatelywhen transmitting (i.e., encoding) and when receiving (i.e., decoding).The FEC management profiles may specify, for example, parameters (e.g.thresholds) pertaining to power consumption and/or requirement, resourceuse and/or availability, and/or communication related conditions (e.g.,power loss, latency, reliability, etc.). The FEC management profiles maybe maintained, for example, by the host processor 202, and/or may beupdated and/or modified thereby. The invention, however, need not be solimited.

FIG. 3A is a block diagram illustrating exemplary structure of aphysical layer (PHY) packet carrying a data link layer frame, which maybe utilized in accordance with an embodiment of the invention. Referringto FIG. 3A, there is shown an exemplary physical layer (PHY) packet 300carrying a data link layer (DLL) frame 310, which may be structured inaccordance with wireless protocols utilized by electronic devices thatimplement various aspects of the invention. Cross-referenced U.S.application Ser. No. ______ (Attorney Docket Number 24667US02), filed onFeb. 29, 2012, and cross-referenced U.S. application Ser. No. ______(Attorney Docket Number 24669US02), filed on Feb. 29, 2012 provide moredetails on the structures of exemplary PHY packets and/or data linklayer frames.

The data link layer (DLL) frames 310 carried in PHY packets 300 maycomprise a length field, indicating the length of the DLL frame, aheader and a footer, providing information pertaining to the frameand/or handling thereof, and a payload field. The DLL frame 310 may alsocomprise a cyclic redundancy check (CRC) field. The header may comprise,inter alia, a transmit equivalent isotropic radiated power (TxEIRP)field 320, which may indicate the original transmit power applied by thetransmitting device in transmitting the packet (or frame). In otherwords, the TxEIRP field 320 embedded in the frame header may provide adevice receiving PHY packet 300 with information pertaining to thetransmit power applied by the transmitting device, enabling thereceiving device to precisely determine the original transmit power forreceived signals being handled by the receiving device.

In various embodiments of the invention, the TxEIRP field 320 may beutilized to enable devices engaged in communication in which FEC mayoptionally be used, such as devices 102 and 104 ₂, to determine powerdissipation associated with communication therebetween. In this regard,the device may locally measure the power of received packets, such as,for example, in the form of received signal strength indication (RSSI),and use the measured RSSI and the TxEIRP field 320 to estimate the powerloss associated with communication of packets between the devices—e.g.,by determining the difference between the original transmission powerand locally measure reception power. This power loss may correspond topower dissipation. The power dissipation may then be used in determiningwhether to use forward error correction (FEC). In this regard, whenpower dissipation is less than a minimum threshold, PL_(min), FEC usemay be unnecessary and/or undesirable since this may indicate that thedevices are sufficiently close so that no error correction would beneeded. When the power dissipation exceeds the minimum threshold,PL_(min), FEC use may be determined to be necessary and/or desirablesince this may indicate that the devices are not sufficiently close sothat error correction would likely improve reliability of thecommunications. Furthermore, in some instance, it may be determinedwhether power dissipation exceeds a maximum threshold, PL_(max), whichmay result in suspending communication since this may indicate that thedevices are too far apart that FEC may be insufficient in guardingagainst errors during communication.

The power dissipation thresholds (PL_(min) and PL_(max)) may beconfigurable. In this regard, various FEC management profiles may beutilized, and these profiles may specify different thresholds forenabling/disabling FEC use, and/or for suspending communications betweenthe devices.

FIG. 3B is a block diagram illustrating exemplary structure of a datalink frame utilized by a requester device in a resource-constrainednetwork to specify particular channels for transmitting responses fromresponder devices, in accordance with an embodiment of the invention.Referring to FIG. 3B, there is shown an exemplary mode 2 networkprotocol (M2NP) PDU 340 carrying therein a mode 2 query protocol (M2QP)command 350, which may be structured in accordance with the presentinvention. Cross-referenced U.S. application Ser. No. ______ (AttorneyDocket Number 24667US02), filed on Feb. 29, 2012, and cross-referencedU.S. application Ser. No. ______ (Attorney Docket Number 24669US02),filed on Feb. 29, 2012 provide more details on M2NP PDUs and/or the M2QPcommands.

The M2QP command 350 may be structured based on the concept of “requestand response,” with the “command” being the operator of requests and theresult returned by responses—that is a requesting device may communicatethe M2QP command 350 to trigger responses from certain devices receivingthe command (i.e., responding devices) under particular conditions. TheM2QP command 350 may comprise a command code field, a command extensionfield, a dialog template 360, one or more other (optional) templates,and command data field. The various fields and/or elements of the M2QPcommand 350 are described in more details in the above-incorporated U.S.Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2,2011.

The dialog template 360 may comprise information that specifies channelsthat may be utilized in transmitting responses. In other words, therequesting device (e.g., device 102) sending the M2QP command 350 toresponding devices (e.g., device 104 ₂) may use the dialog template 360to specify channels that the responding devices are authorized to usewhen transmitting responses to the requesting device. In this regard,the dialog template 360 may comprise a response timeout field 360 _(A),a response channel list length field 360 _(B), and a list of responsechannels 360 _(C). The timeout field 360 _(A) may specify a timeoutvalue, after the expiration of which the requesting device that issuedthe request will cease listening for a response on any of the channels.The response channel list length field 360 _(B) may specify the lengthof the list of response channels 360 _(C)—that is the number of channelslisted as valid channels for use by the responding device(s). Theresponse channel list length field 360 _(B) may be set to 0 (zero), inwhich case a single response channel is implicitly configured to thesame channel used by the request. Alternatively, command parameters,such as a specific command value, command extension, and/or other M2QPbit-fields may be used as another way to declare that the responsechannel list is of zero (0) length, and that the same channel shall beused in the response as in the request. The list of response channels360 _(C) may comprise one or more channel identifiers 362 ₁-362 _(N).

In an embodiment of the invention, the dialog template 360 may beutilized to enable a device (requesting device—e.g. device 102) tospecify to another, peer device (the responding device—e.g. device 104₂) the type of channels (FEC vs. non-FEC) that may be used by theresponding device when sending responses to the requesting device. Inthis regard, channel identifiers in the list of response channels 360_(C) may correspond to FEC and non-FEC channels. FEC and non-FECchannels may be physically different—i.e. only some channels may allowfor, and support use of FEC encoding in messages communicated therein.Additionally or alternatively, the distinction between FEC and non-FECchannels may be a logical concept. In other words, each channel may beconfigured to allow (or not allow) use of FEC encoding such that eachphysical channel may have two logical channel IDs: one being FEC capableand the other being non-FEC. Accordingly, a physical channel may beconfigured to either use or not use FEC based on the channel identifiersassociated with that physical channel is specified.

FIG. 4 is a flow chart that illustrates exemplary steps for performingadaptive configuration and/or use of forward error correction (FEC), inaccordance with an embodiment of the invention. Referring to FIG. 4,there is shown a flow chart 400 comprising a plurality of exemplarysteps for performing adaptive forward error correction in an electronicdevice, such as electronic device 200, during communications in aresource-constrained network.

In step 402, an analysis of whether use of FEC encoding for responsessent from the responding device is necessary and/or desirable may beperformed. In this regard, the analysis may be based on various factorsand/or conditions which may be pertinent to, and/or may necessitate, use(or no use) of FEC encoding. For example, the FEC use analysis may bebased on latency and/or loss of power associated with the communicationfrom the responding device to the requesting device. In step 404, adetermination of whether to use FEC encoding by the responding device(based on the analysis of step 402) may be performed. In instances whereit may be determined to use FEC encoding by the responding device, theprocess may proceed to step 406. In step 406, the requesting device mayinstruct the responding device to not use FEC encoding when responding(e.g., by specifying non-FEC capable channels).

Returning to step 404, in instances where it may be determined that theresponding device use FEC encoding, the process may proceed to step 408.In step 408, an analysis of whether handling of FEC encoded responsessent from the responding device is feasible may be performed—i.e.,whether the requesting device can handle FEC decoding. In this regard,the analysis may be based on various factors and/or conditions which maybe pertinent to the ability of the requesting device to handle FECdecoding. This may comprise, for example, required and/or availablepower or other resources (e.g. processing or storage resources). In step410, a determination of whether handling of FEC decoding by therequesting device is feasible (based on the analysis of step 408) may beperformed. In instances where it may be determined that handling of FECdecoding by the requesting device is not feasible the process mayproceed to step 406.

Returning to step 410, in instances where it may be determined that useof FEC encoding by the responding device may be necessary and/ordesirable, the process may proceed to step 412. In step 412, therequesting device may instruct the responding device to use FEC encodingwhen responding (e.g., by specifying FEC capable channels).

Other embodiments of the invention may provide a non-transitory computerreadable medium and/or storage medium, and/or a non-transitory machinereadable medium and/or storage medium, having stored thereon, a machinecode and/or a computer program having at least one code sectionexecutable by a machine and/or a computer, thereby causing the machineand/or computer to perform the steps as described herein for forwarderror correction (FEC) in a resource-constrained network.

Accordingly, the present invention may be realized in hardware,software, or a combination of hardware and software. The presentinvention may be realized in a centralized fashion in at least onecomputer system, or in a distributed fashion where different elementsare spread across several interconnected computer systems. Any kind ofcomputer system or other apparatus adapted for carrying out the methodsdescribed herein is suited. A typical combination of hardware andsoftware may be a general-purpose computer system with a computerprogram that, when being loaded and executed, controls the computersystem such that it carries out the methods described herein.

The present invention may also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

While the present invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the present invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the present invention without departing from its scope.Therefore, it is intended that the present invention not be limited tothe particular embodiment disclosed, but that the present invention willinclude all embodiments falling within the scope of the appended claims.

1. A method, comprising: in an electronic device comprising acommunication interface for communicating over a physical medium:determining whether use of forward error correction (FEC) encoding incommunications from another electronic device to said electronic deviceis necessary, desirable, and/or feasible; and when use of FEC encodingis feasible and either necessary or desirable, instructing said anotherelectronic device to utilize FEC encoding when transmitting signalsdestined for said electronic device.
 2. The method of claim 1,comprising determining whether use of FEC encoding is feasible andeither necessary or desirable based on a determination of power lossassociated with said communications from said another electronic deviceto said electronic device.
 3. The method of claim 2, comprisingdetermining said power loss based on measurement of received signalstrength indication (RSSI) for packets received from said anotherelectronic device and based on original transmit power for packetsreceived from said another electronic device, said original transmitpower being obtained from information embedded in said received packets.4. The method of claim 2, comprising determining that use of FECencoding is not necessary and is not desirable when said power loss isbelow a minimum threshold.
 5. The method of claim 2, comprisinginstructing said another electronic device to cease transmission to saidelectronic device when said power loss exceeds a maximum threshold. 6.The method of claim 1, comprising determining when use of FEC encodingis necessary or desirable based on determination of latency associatedwith said communications from said another electronic device to saidelectronic device is necessary and/or feasible.
 7. The method of claim1, comprising determining when use of FEC encoding is feasible based onone or more parameters that are pertinent to FEC decoding handling insaid electronic device.
 8. The method of claim 7, wherein said one ormore parameters comprise power, storage and/or processing relatedresources in said electronic device.
 9. The method of claim 1,comprising instructing said another electronic device to utilize FECencoding by specifying one or more FEC-capable channels for use by saidanother electronic device when transmitting said signals destined forsaid electronic device.
 10. The method of claim 1, comprisingselectively applying FEC encoding to transmissions to said anotherelectronic device, wherein said selective use of FEC encoding is basedon, at least in part, a determination of whether FEC decoding isfeasible in said another electronic device.
 11. A system, comprising: anelectronic device comprising a communication interface for communicatingover a physical medium, said electronic device being operable to:determine whether use of forward error correction (FEC) encoding incommunications from another electronic device to said electronic deviceis necessary, desirable, and/or feasible; and when use of FEC encodingis feasible and either necessary or desirable, instruct said anotherelectronic device to utilize FEC encoding when transmitting signalsdestined for said electronic device.
 12. The system of claim 11, whereinsaid electronic device is operable to determine whether use of FECencoding is feasible and either necessary or desirable based on adetermination of power loss associated with said communications fromsaid another electronic device to said electronic device.
 13. The systemof claim 12, wherein said electronic device is operable to determinesaid power loss based on measurement of received signal strengthindication (RSSI) for packets received from said another electronicdevice and based on original transmit power for packets received fromsaid another electronic device, said original transmit power beingobtained from information embedded in said received packets.
 14. Thesystem of claim 12, wherein said electronic device is operable todetermine that use of FEC encoding is not necessary and is not desirablewhen said power loss is below a minimum threshold.
 15. The system ofclaim 12, wherein said electronic device is operable to instruct saidanother electronic device to cease transmission to said electronicdevice when said power loss exceeds a maximum threshold.
 16. The systemof claim 11, wherein said electronic device is operable to determinewhen use of FEC encoding is necessary or desirable based ondetermination of latency associated with said communications from saidanother electronic device to said electronic device is necessary and/orfeasible.
 17. The system of claim 11, wherein said electronic device isoperable to determine when use of FEC encoding is feasible based on oneor more parameters that are pertinent to FEC decoding handling in saidelectronic device.
 18. The system of claim 17, wherein said one or moreparameters comprise power, storage and/or processing related resourcesin said electronic device.
 19. The system of claim 11, wherein saidelectronic device is operable to instruct said another electronic deviceto utilize FEC encoding by specifying one or more FEC-capable channelsfor use by said another electronic device when transmitting said signalsdestined for said electronic device.
 20. The system of claim 11, whereinsaid electronic device is operable to selectively apply FEC encoding totransmissions to said another electronic device, wherein said selectiveuse of FEC encoding is based on, at least in part, a determination ofwhether FEC decoding is feasible in said another electronic device. 21.A system, comprising: an electronic device comprising a communicationinterface for communicating over a physical medium, said electronicdevice being operable to: selectively use forward error correction (FEC)encoding when communicating with another electronic device, wherein saidselective use of FEC encoding is based on, at least in part, informationreceived from said another electronic device, said informationspecifying one or more channels that said another electronic deviceauthorized said electronic device to use when transmitting to saidanother electronic device.
 22. The system of claim 21, wherein saidelectronic device is operable to determine when to apply FEC encodingbased on determination of type of said one or more channels.
 23. Thesystem of claim 21, wherein said electronic device is operable to applyFEC encoding when said determined type of said one or more channelsindicates that said one or more channels are FEC channels.
 24. Thesystem of claim 21, wherein said selective use of FEC encoding is basedon a determination of power loss of signals communicated between saidanother electronic device and said electronic device.